In a large enterprise with multiple diverse computing platforms, it is sometimes necessary for communications to occur between disparate computer systems. For example, a mainframe-based system might need to send a message to an application running under the Java 2, Enterprise Edition (J2EE) platform. Numerous middleware software programs are commercially available to facilitate such a data transfer. IBM, for example, provides a software family known as MQSeries that is claimed to be able to connect any two computing systems in common commercial use. Numerous interfaces might be present within MQSeries that can connect various combinations of platforms. One interface might connect a mainframe to a Java application that uses the MQSeries native protocol while another interface might connect a mainframe to a Java application that uses Java Messaging Service (JMS), a set of messaging interfaces defined by Sun Microsystems.
When a mainframe wants to send a message to a particular MQSeries client, the message is placed on a particular MQSeries queue. There is a one-to-one relationship between the MQSeries message initiators and the message receivers. A table is maintained on the mainframe that describes which messages go to which queues. If a new application is added to the mainframe, a new entry must be made to the table in the mainframe and a new queue must be created in MQSeries.
This method of communication between a mainframe and a set of clients is illustrated in FIG. 1. A mainframe computing system 12 uses three different queues 14, 16, and 18 to send messages. The queues distribute the messages to the appropriate clients 22, 24, and 26. While three message queues and three clients are shown in FIG. 1, other quantities of message queues and clients could be present.
With existing technology, if a mainframe needs to send a message to a J2EE-based application, the message might be sent from the mainframe to MQSeries and then from MQSeries to the JMS interface within MQSeries. On the J2EE side, another JMS interface is typically present. The MQSeries-based JMS interface might send the message to the J2EE-based JMS interface, which would then pass the message on to the J2EE-based application. The transfer of messages in this manner has several drawbacks. First, different vendors can implement different versions of JMS and the different implementations are not necessarily compatible. Thus, the transfer of data between MQSeries-based JMS and J2EE-based JMS can be inefficient and can require labor and time on the part of information technology experts to resolve the discrepancies between the different versions of JMS. Second, such a transfer method could create a security breach. With a direct link between MQSeries and J2EE, a J2EE-based component could have direct access to the data-sensitive mainframe environment. Third, such a direct link does not allow the monitoring or logging of data that is transferred between the mainframe and JMS.